#!/usr/bin/env python
# -*- coding: utf-8 -*-
from pywinauto.application import Application
import os
import tkinter as tk
from tkinter import ttk
import ctypes
import time
# import psutil


os.environ.update({"__COMPAT_LAYER": "RUnAsInvoker"})  # 增加管理员权限

win = tk.Tk()
win.title("正方康特 配置工具 -- Power by 周飞")  # 添加标题
win.iconbitmap('zfkt.ico')

# ttk.Label(win, text="选择方式").grid(column=1, row=0)  # 添加一个标签，并将其列设置为1，行设置为0
# ttk.Label(win, text="输入前缀:").grid(column=0, row=0)  # 设置其在界面中出现的位置  column代表列   row 代表行


# button被点击之后会被执行
# os.environ.update({"__COMPAT_LAYER": "RUnAsInvoker"})  # 增加管理员权限


def run():  # 当auction被点击时,该函数则生效
    os.environ.update({"__COMPAT_LAYER": "RUnAsInvoker"})  # 增加管理员权限
    x = ctypes.WinDLL("user32.dll")
    x.MessageBoxTimeoutA(0, "首先关闭UAC权限，在UAC提示中点是......本窗口5秒后自动关闭".encode("gbk"), "提示".encode("gbk"), 0, 0, 5000)
   # print('rar=', chVarRar.get())
   # print('PDF=', chvarPDF.get())
   # print('DRV=', chvarDRV.get())
   # print('slui=', chvarslui.get())
   # print('Office=', chvarOffice.get())
   # Application().start(r"tools\UAC_close.bat")  # 运行关闭UAC脚本

# 判断并软件安装
    if chVarRar.get() == 1:
        Application().start(r"tools\rar.exe")  # 判断并安装Rar
    if chvarslui.get() == 1:
        Application().start("slui")  # 判断并打开序列号输入界面
    if chvarDRV.get() == 1:
        Application().start(r"tools\DrvCeo\DrvCeo.exe -a")  # 判断并安装驱动程序
    if chvarWX.get() == 1:
        Application().start(r"tools\wx.exe /S")  # 判断并安装微信
    if chvarQQ.get() == 1:
        Application().start(r"tools\QQ.exe /S")  # 判断并安装QQ
    if chvarWPS.get() == 1:
        Application().start(r"bat\wps.bat")  # 判断并安装WPS
    if chvarDesktop.get()==1:
        Application().start(r"bat\desktop.bat")

    # PDF与Office均用msi封装，不能同时运行。判断是否要同步安装，根据情况允许程序调用脚本
    if chvarPDF.get() == 1 and (chvarOffice.get() == 3 or chvarOffice.get() == 0):
        Application().start(r"tools\PDF.exe")
    elif chvarPDF.get() == 1 and chvarOffice.get() == 1:
        Application().start(r"bat\P16.bat")
    elif chvarPDF.get() == 1 and chvarOffice.get() == 2:
        Application().start(r"bat\P07.bat")
    elif chvarPDF.get() == 0 and chvarOffice.get() == 1:
        Application().start(r"bat\2016.bat")
    elif chvarPDF.get() == 0 and chvarOffice.get() == 2:
        Application().start(r"bat\2007.bat")


# 实施按钮
action = ttk.Button(win, text="开始部署!", command=run)  # 创建开始部署按钮
action.grid(column=1, row=18)  # 设置其在界面中出现的位置  column代表列   row 代表行



# 文本框
# name = tk.StringVar()  # StringVar是Tk库内部定义的字符串变量类型，在这里用于管理部件上面的字符；不过一般用在按钮button上。改变StringVar，按钮上的文字也随之改变。
# nameEntered = ttk.Entry(win, width=12, textvariable=name)
# 创建一个文本框，定义长度为12个字符长度，并且将文本框中的内容绑定到上一句定义的name变量上，方便clickMe调用
# nameEntered.grid(column=0, row=1)  # 设置其在界面中出现的位置  column代表列   row 代表行
# nameEntered.focus()  # 当程序运行时,光标默认会出现在该文本框中

# 创建一个下拉列表
# number = tk.StringVar()
# numberChosen = ttk.Combobox(win, width=12, textvariable=number, state='readonly')
# numberChosen['value'] = (1, 2)  # 设置下拉列表的值
# numberChosen.grid(column=1, row=1)  # 设置其在界面中出现的位置  column代表列   row 代表行
# numberChosen.current(0)  # 设置下拉列表默认显示的值，0为 numberChosen['values'] 的下标值

# 复选框选择安装软件的输入
chVarRar = tk.IntVar()  # 用来获取复选框是否被勾选，通过chVarRra.get()来获取其的状态,其状态值为int类型 勾选为1  未勾选为0
check1 = tk.Checkbutton(win, text="winrar", variable=chVarRar)  # text为该复选框后面显示的名称, variable将该复选框的状态赋值给一个变量，当state='disabled时，该复选框为灰色，不能点的状态
check1.deselect()  # 该复选框是否勾选,select为勾选, deselect为不勾选
check1.grid(column=0, row=4, sticky=tk.W)  # sticky=tk.W  当该列中其他行或该行中的其他列的某一个功能拉长这列的宽度或高度时，设定该值可以保证本行保持左对齐，N：北/上对齐  S：南/下对齐  W：西/左对齐  E：东/右对齐

chvarPDF = tk.IntVar()
check2 = tk.Checkbutton(win, text="PDF", variable=chvarPDF)
check2.deselect()
check2.grid(column=1, row=4, sticky=tk.W)

chvarDRV = tk.IntVar()
check3 = tk.Checkbutton(win, text="安装驱动", variable=chvarDRV)
check3.deselect()
check3.grid(column=2, row=4, sticky=tk.W)

chvarslui = tk.IntVar()
check4 = tk.Checkbutton(win, text="激活界面", variable=chvarslui)
check4.deselect()
check4.grid(column=3, row=4, sticky=tk.W)

chvarQQ = tk.IntVar()
check5 = tk.Checkbutton(win, text="QQ", variable=chvarQQ)
check5.deselect()
check5.grid(column=0, row=5, sticky=tk.W)

chvarWX = tk.IntVar()
check6 = tk.Checkbutton(win, text="微信", variable=chvarWX)
check6.deselect()
check6.grid(column=1, row=5, sticky=tk.W)

chvarWPS = tk.IntVar()
check7 = tk.Checkbutton(win, text="WPS", variable=chvarWPS)
check7.deselect()
check7.grid(column=2, row=5, sticky=tk.W)

chvarDesktop = tk.IntVar()
check8 = tk.Checkbutton(win, text="桌面三图标", variable=chvarDesktop)
check8.select()
check8.grid(column=3, row=5, sticky=tk.W)

# 单选框，选择Office的安装
chvarOffice = tk.IntVar()
checkO1 = tk.Radiobutton(win, text="Office2016", variable=chvarOffice, value=1)
checkO1.grid(column=0, row=15, sticky=tk.W)
checkO2 = tk.Radiobutton(win, text="Office2007", value=2, variable=chvarOffice)
checkO2.grid(column=1, row=15, sticky=tk.W)
checkO3 = tk.Radiobutton(win, text="不安装Office", value=3, variable=chvarOffice)
checkO3.grid(column=2, row=15, sticky=tk.W)

win.mainloop()  # 当调用mainloop()时,窗口才会显示出来
